package ch.gibb.learnit.client.controllers;


import ch.gibb.learnit.client.util.soap.Category;
import org.apache.log4j.Logger;

/**
 * Controller to record a new category
 *
 * @author Bernard Jauqet
 * @version 1.0
 */
public class RegisterCategoryAction extends MasterAction {
    //IN
    private String catName;
    private String form;

    //Class
    private final Logger masterLogger = Logger.getLogger(RegisterCategoryAction.class);

    @Override
    public int openPage() {
        // Setting title of page
        super.title = "Kategorie erfassen";

        // Checks if a user is logged in
        if (!loginCheck())
            return 403;

        // Logic to record category
        if (form != null && !form.equals("")) {
            try {
                Category cat = factory.createCategory();
                cat.setName(factory.createCategoryName(catName));
                if (client.addCategory(getUser(), cat))
                    getSuccess().addMessage("Die Kategorie wurde erstellt");
                else
                    getErrors().addMessage("Wegen eines interen Fehlers konnte die Kategorie nicht erstellt werden");
            } catch (Exception e) {
                getErrors().addMessage("Die Kategorie konnte wegen eines internen Fehlers nicht erstellt werden");
                masterLogger.error("Could not create category because " + e.getMessage(), e);
            }
        }

        return 0;
    }

    public String getCatName() {
        return catName;
    }

    public void setCatName(String catName) {
        this.catName = catName;
    }

    public String getForm() {
        return form;
    }

    public void setForm(String form) {
        this.form = form;
    }
}
